CUME_DIST, NTILE, LAG, LEAD Functions

Big Data and Analytics - অ্যাপাচি ইমপালা (Apache Impala) - Impala এর জন্য Data Aggregation এবং Window Functions
285

Apache Impala একটি শক্তিশালী SQL ইঞ্জিন যা বড় ডেটা সেটে দ্রুত কোয়েরি এবং বিশ্লেষণ করতে সক্ষম। Impala বিভিন্ন window functions প্রদান করে, যা ডেটা বিশ্লেষণকে আরও শক্তিশালী এবং সহজতর করে তোলে। এর মধ্যে কিছু গুরুত্বপূর্ণ ফাংশন হল CUME_DIST, NTILE, LAG, এবং LEAD। এই ফাংশনগুলো সাধারণত অর্ডার্ড ডেটা এর মধ্যে বিশ্লেষণ করতে ব্যবহৃত হয় এবং বিভিন্ন স্ট্যাটিস্টিক্যাল বা র‌্যাংকিং অপারেশনগুলোতে সহায়ক।


CUME_DIST Function

CUME_DIST (Cumulative Distribution) একটি window function যা নির্দিষ্ট একটি রেকর্ডের প্রতি শতকরা ভাগ (percentage) প্রদান করে, যা তার পূর্ববর্তী রেকর্ডগুলোর সাথে মিলিয়ে হয়। এটি মূলত রেকর্ডের পরিমাণের তুলনায় তার অবস্থান বা কিউমুলেটিভ ডিস্ট্রিবিউশন পরিমাপ করতে ব্যবহৃত হয়।

সিঙ্কট্যাক্স:

CUME_DIST() OVER (PARTITION BY column_name ORDER BY column_name)
  • PARTITION BY: ডেটাকে বিভাগে ভাগ করার জন্য ব্যবহৃত হয় (যদি প্রয়োজন হয়)।
  • ORDER BY: ডেটা কীভাবে সাজানো হবে তা নির্ধারণ করে।

উদাহরণ:

SELECT employee_id, salary,
       CUME_DIST() OVER (ORDER BY salary) AS cumulative_dist
FROM employees;

এখানে, CUME_DIST ফাংশনটি প্রত্যেক কর্মচারীর salary অনুযায়ী তার কিউমুলেটিভ ডিস্ট্রিবিউশন হিসাব করবে। অর্থাৎ, কোন কর্মচারী তার salary এর মধ্যে কোথায় অবস্থান করছে, তার শতকরা অংশ দেখাবে।


NTILE Function

NTILE ফাংশনটি ডেটাকে n সংখ্যক গ্রুপে (tiles) বিভক্ত করে। এটি সাধারণত ডেটা সেটকে সমান ভাগে বিভক্ত করার জন্য ব্যবহৃত হয়, যেমন টপ 10%, 20% ইত্যাদি।

সিঙ্কট্যাক্স:

NTILE(n) OVER (PARTITION BY column_name ORDER BY column_name)
  • n: ভাগের সংখ্যা (যেমন, 4টি ভাগের জন্য 4 ব্যবহার করা হবে)।
  • PARTITION BY: ডেটাকে ভাগ করার জন্য ব্যবহৃত কলাম (যদি প্রয়োজন হয়)।
  • ORDER BY: ডেটাকে সাজানোর জন্য ব্যবহৃত কলাম।

উদাহরণ:

SELECT employee_id, salary,
       NTILE(4) OVER (ORDER BY salary) AS quartile
FROM employees;

এখানে, NTILE(4) ফাংশনটি salary অনুসারে ডেটাকে ৪টি ভাগে (quartiles) ভাগ করবে, এবং প্রতিটি কর্মচারীকে তার বর্গ অনুযায়ী শ্রেণীবদ্ধ করবে।


LAG Function

LAG ফাংশনটি পূর্ববর্তী রেকর্ডের মান প্রদান করে, যা মূলত window function এর মধ্যে ব্যবহার করা হয়। এটি চলমান রেকর্ডের পূর্ববর্তী মান নিয়ে কাজ করতে সাহায্য করে।

সিঙ্কট্যাক্স:

LAG(column_name, offset, default_value) OVER (PARTITION BY column_name ORDER BY column_name)
  • column_name: যে কলামের মান আপনি ব্যবহার করতে চান।
  • offset: পূর্ববর্তী রেকর্ডের সংখ্যা (যেমন, 1 মানে এক রেকর্ড পিছনে যাবে)।
  • default_value: যদি পূর্ববর্তী রেকর্ড না পাওয়া যায়, তবে ডিফল্ট মান কী হবে (এটি ঐচ্ছিক)।

উদাহরণ:

SELECT employee_id, salary,
       LAG(salary, 1, 0) OVER (ORDER BY hire_date) AS prev_salary
FROM employees;

এখানে, LAG ফাংশনটি প্রতিটি কর্মচারীর salary এর পূর্ববর্তী মান প্রদান করবে (যদি কোনো পূর্ববর্তী রেকর্ড থাকে), এবং hire_date অনুসারে সাজানো হবে। যদি পূর্ববর্তী রেকর্ড না থাকে, তবে ডিফল্ট মান 0 প্রদান করা হবে।


LEAD Function

LEAD ফাংশনটি LAG ফাংশনের বিপরীত, যেখানে এটি পরবর্তী রেকর্ডের মান প্রদান করে। এটি চলমান রেকর্ডের পরবর্তী মান নিয়ে কাজ করতে সহায়তা করে।

সিঙ্কট্যাক্স:

LEAD(column_name, offset, default_value) OVER (PARTITION BY column_name ORDER BY column_name)
  • column_name: যে কলামের মান আপনি ব্যবহার করতে চান।
  • offset: পরবর্তী রেকর্ডের সংখ্যা (যেমন, 1 মানে এক রেকর্ড পরে যাবে)।
  • default_value: যদি পরবর্তী রেকর্ড না পাওয়া যায়, তবে ডিফল্ট মান কী হবে (এটি ঐচ্ছিক)।

উদাহরণ:

SELECT employee_id, salary,
       LEAD(salary, 1, 0) OVER (ORDER BY hire_date) AS next_salary
FROM employees;

এখানে, LEAD ফাংশনটি প্রতিটি কর্মচারীর salary এর পরবর্তী মান প্রদান করবে (যদি কোনো পরবর্তী রেকর্ড থাকে), এবং hire_date অনুসারে সাজানো হবে। যদি পরবর্তী রেকর্ড না থাকে, তবে ডিফল্ট মান 0 প্রদান করা হবে।


সারাংশ

CUME_DIST, NTILE, LAG, এবং LEAD ফাংশনগুলো window functions হিসেবে ডেটা বিশ্লেষণে খুবই সহায়ক। এগুলি ব্যবহারকারীদের রেকর্ডগুলির মধ্যে সম্পর্ক, কিউমুলেটিভ ডিস্ট্রিবিউশন, বা পূর্ববর্তী এবং পরবর্তী রেকর্ডের মান নির্ধারণে সহায়তা করে। এগুলো Impala SQL তে ডেটা বিশ্লেষণের বিভিন্ন প্রয়োজনীয় পরিস্থিতিতে ব্যবহার করা যেতে পারে, যেমন:

  • CUME_DIST: কিউমুলেটিভ ডিসট্রিবিউশন পরিমাপের জন্য।
  • NTILE: ডেটাকে সমান ভাগে বিভক্ত করার জন্য।
  • LAG এবং LEAD: পূর্ববর্তী এবং পরবর্তী মান নির্ধারণের জন্য।

এই ফাংশনগুলো ডেটা সেট বিশ্লেষণের ক্ষেত্রে আরও কার্যকরী এবং কার্যকর পদ্ধতি প্রদান করে।

Content added By
Promotion
NEW SATT AI এখন আপনাকে সাহায্য করতে পারে।

Are you sure to start over?

Loading...